package com.un.ebs.customer.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.un.ebs.core.enums.SexEnum;
import com.un.ebs.customer.domain.Defunct;
import com.un.ebs.customer.domain.DefunctExt;
import com.un.ebs.customer.dto.DefunctAddDto;
import com.un.ebs.customer.dto.DefunctAttrDto;
import com.un.ebs.customer.dto.DefunctUpdateDto;
import com.un.ebs.customer.dto.DefunctVo;
import com.un.ebs.memorial.domain.MemorialExt;
import net.sourceforge.jtds.jdbc.DateTime;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liubo
 * @since 2019-09-24
 */
public interface DefunctService {

    String add(DefunctAddDto req);

    String add(String name, String tombSkuId);

    void update(DefunctUpdateDto req);

    String nameExist(String name, String custId);

    /**
     * 预约下葬时间
     *
     * @param id
     * @param time
     */
    void buryBook(String id, Date time);

    /**
     * 下葬完成
     *
     * @param id
     * @param time
     */
    void buryComplete(String id, Date time);

    void delete(String id);

    /**
     * 下葬取消
     *
     * @param id
     */
    void buryCancel(String id);

    Defunct queryById(String id);

    DefunctVo queryViewById(String id);

    IPage<DefunctExt> query(String searchText, Boolean isBury, int pageIndex, int pageSize);

    IPage<DefunctExt> queryByCustomer(String searchText, int pageIndex, int pageSize);

    /**
     * 查询所有墓位使用者的纪念日
     * @return
     */
    List<DefunctExt> queryAnniversaries();

    void updateBirthdayNotify(String id);

    void updateDefunctDateNotify(String id);

    List<DefunctExt> queryByUserId(String userId);

    List<DefunctExt> queryByCustId(String custId);

    List<DefunctAttrDto> queryAttrs(String id);

    /**
     * 新客户绑定
     *
     * @param custName
     * @param custPhone
     * @param openId
     * @param defunctId
     */
    void newCustBind(String entId, String custName, SexEnum sex, String custPhone, String openId, String defunctId);

    void bind(String custId, String defunctId);

    List<String> queryDefunctIdByUserId(String userId);

    List<DefunctExt> queryByTombSkuId(String id);

}
